package cc.autoapi.pucong.auto.flow.provider.api.entity;

import cc.autoapi.pucong.auto.flow.persistence.po.api.ApiInfoPo;
import cc.autoapi.pucong.auto.flow.provider.api.entity.dto.ApiInfoAddDto;
import cc.autoapi.pucong.auto.flow.provider.api.entity.dto.ApiInfoUpdateDto;
import cc.autoapi.pucong.auto.flow.provider.api.entity.qo.ApiInfoQo;
import cc.autoapi.pucong.auto.flow.provider.api.entity.vo.ApiInfoVo;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * @author pucong
 * @description 接口信息 cover
 * @create 2024-09-24
 */
@Mapper(componentModel = "spring")
public interface ApiInfoConvert {

    ApiInfoConvert INSTANCE = Mappers.getMapper(ApiInfoConvert.class);

    /**
     * dto转po
     * @param dto
     * @return
     */
    ApiInfoPo dto2po(ApiInfoUpdateDto dto);

    /**
     * dto转po
     * @param dto
     * @return
     */
    ApiInfoPo dto2po(ApiInfoAddDto dto);


    /**
     * do转dto
     * @param apiInfo
     * @return
     */
    ApiInfoVo po2vo(ApiInfoPo apiInfo);


    /**
     * list<po>转list<vo>
     * @param apiInfos
     * @return
     */
    List<ApiInfoVo> po2vos(List<ApiInfoPo> apiInfos);
}
